home *** CD-ROM | disk | FTP | other *** search
/ Aminet 30 / Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso / Aminet / dev / lang / SmallEiffel.lha / SmallEiffel / bin_c / compile_to_jvm20.c < prev    next >
C/C++ Source or Header  |  1998-12-22  |  52KB  |  2,389 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.79)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "compile_to_jvm.h"
  9.  
  10.  
  11. T0* r273jvm_root_class(void){
  12. if(fBC12jvm_root_class==0){
  13. fBC12jvm_root_class=1;
  14. {T7*n=malloc(sizeof(*n));
  15. *n=M7;
  16. r7make(n,12);
  17. oBC12jvm_root_class=(T0*)n;
  18. }
  19. r7copy(((T7*)oBC12jvm_root_class),((T24*)(oBC12jvm))->_output_name/*0*/);
  20. r7extend(((T7*)oBC12jvm_root_class),'\57');
  21. r7append(((T7*)oBC12jvm_root_class),((T0*)ms13_1732));
  22. }
  23. return oBC12jvm_root_class;}
  24. /*No:TYPE_NONE.start_position*/
  25.  
  26.  
  27. void r273jvm_initialize_local(T2 a1){
  28. /*[IRF3.4opcode_aconst_null*/r28opcode((T28*)(oBC12code_attribute),1,1);
  29. /*]*/
  30. /*[IRF3.6jvm_write_local*/{T2 b1=a1;
  31. r28opcode_astore((T28*)(oBC12code_attribute),b1);
  32. }/*]*/
  33. }
  34. /*No:TYPE_NONE.used_as_reference*/
  35. /*No:TYPE_NONE.is_user_expanded*/
  36. /*No:TYPE_NONE.id*/
  37. /*No:TYPE_NONE.is_pointer*/
  38. /*No:TYPE_NONE.jvm_check_class_invariant*/
  39. /*No:TYPE_NONE.to_runnable*/
  40. /*No:TYPE_NONE.run_class*/
  41. /*No:TYPE_NONE.us_none*/
  42. /*No:TYPE_NONE.is_like_current*/
  43. /*No:TYPE_NONE.is_bit*/
  44. /*No:TYPE_NONE.jvm_write_local*/
  45.  
  46.  
  47. T0* r273smallest_ancestor(T0* a1){
  48. T0* R=NULL;
  49. R=a1;
  50. return R;
  51. }
  52.  
  53.  
  54. T0* r273run_time_mark(void){
  55. T0* R=NULL;
  56. R=((T0*)ms14_1256);
  57. return R;
  58. }
  59. /*No:TYPE_NONE.is_expanded*/
  60. /*No:TYPE_NONE.jvm_if_x_eq*/
  61. /*No:TYPE_NONE.jvm_xnewarray*/
  62. /*No:TYPE_NONE.jvm_push_local*/
  63. /*No:TYPE_NONE.fz_dot*/
  64. /*No:TYPE_NONE.is_like_feature*/
  65. /*No:TYPE_NONE.is_a*/
  66.  
  67.  
  68. T0* r273written_mark(void){
  69. T0* R=NULL;
  70. R=((T0*)ms14_1256);
  71. return R;
  72. }
  73. /*No:TYPE_NONE.is_character*/
  74.  
  75.  
  76. void r273error(T0* a1,T0* a2){
  77. r21add_position(a1);
  78. r21error((T21*)(oBC12eh),a2);
  79. }
  80.  
  81.  
  82. void r273make(T273* C,T0* a1){
  83. {T70*n=malloc(sizeof(*n));
  84. *n=M70;
  85. r70make(n,((T0*)ms14_1256),a1);
  86. C->_base_class_name=(T0*)n;
  87. }
  88. }
  89. /*No:TYPE_NONE.jvm_convert_to*/
  90.  
  91.  
  92. void r273fatal_error_generic_list(T273* C){
  93. r21add_type((T0*)C,((T0*)ms52_29184));
  94. r21print_as_fatal_error((T21*)(oBC12eh));
  95. }
  96. /*No:TYPE_NONE.is_array*/
  97.  
  98.  
  99. T2 r273jvm_push_default(void){
  100. T2 R=0;
  101. /*[IRF3.4opcode_aconst_null*/r28opcode((T28*)(oBC12code_attribute),1,1);
  102. /*]*/
  103. R=1;
  104. return R;
  105. }
  106. /*No:TYPE_NONE.is_dummy_expanded*/
  107.  
  108.  
  109. T0* r273generic_list(T273* C){
  110. T0* R=NULL;
  111. r273fatal_error_generic_list(C);
  112. return R;
  113. }
  114.  
  115.  
  116. T0* r273base_class(T273* C){
  117. T0* R=NULL;
  118. T0* _bcn=NULL;
  119. _bcn=(C)->_base_class_name/*4*/;
  120. /*[IF*/
  121. if((_bcn)!=((void*)(NULL))){
  122. R=r70base_class(((T70*)_bcn));
  123. }
  124. else{
  125. /*[IRF3.6append*/{T0* b1=((T0*)ms52_37098);
  126. r7append((T7*)(oBC21explanation),b1);
  127. }/*]*/
  128. r21add_type((T0*)C,((T0*)ms13_47));
  129. r21print_as_fatal_error((T21*)(oBC12eh));
  130. }
  131. /*FI]*/
  132. return R;
  133. }
  134. /*No:TYPE_NONE.jvm_if_x_ne*/
  135. /*No:TYPE_NONE.base_class_name*/
  136. /*No:TYPE_NONE.fz_jvm_root*/
  137. /*No:TYPE_NONE.jvm_standard_is_equal*/
  138. /*No:TYPE_NONE.is_formal_generic*/
  139.  
  140.  
  141. T6 r273is_a_in(T273* C,T0* a1,T0* a2){
  142. T6 R=0;
  143. T0* _ct=NULL;
  144. T0* _t2=NULL;
  145. T0* _t1=NULL;
  146. /*[IF*/
  147. if((r273written_mark())==((void*)(X52written_mark(a1)))){
  148. R=1;
  149. }
  150. else{
  151. _ct=(((T23*)a2))->_current_type/*0*/;
  152. _t1=/*(IRF4.4to_runnable*/((T0*)(C))/*)*/;
  153. _t2=X52to_runnable(a1,_ct);
  154. /*[IF*/
  155. if((X52run_time_mark(_t1))==((void*)(X52run_time_mark(_t2)))){
  156. R=1;
  157. }
  158. else{
  159. R=X52is_a(_t1,_t2);
  160. }
  161. /*FI]*/
  162. }
  163. /*FI]*/
  164. return R;
  165. }
  166.  
  167.  
  168. T0* r273look_up_for(T273* C,T0* a1,T0* a2){
  169. T0* R=NULL;
  170. R=r63look_up_for((T63*)(r273base_class(C)),a1,a2);
  171. return R;
  172. }
  173. /*No:TYPE_NONE.run_type*/
  174. /*No:TYPE_NONE.expanded_initializer*/
  175.  
  176.  
  177. T6 r273has_creation(T273* C,T0* a1){
  178. T6 R=0;
  179. r21add_position(X50start_position(a1));
  180. r273error(/*(IRF4.6start_position*/(((T70*)((C)->_base_class_name/*4*/)))->_start_position/*4*//*)*/,((T0*)ms273_29715));
  181. return R;
  182. }
  183. /*No:TYPE_NONE.jvm_method_flags*/
  184. /*No:TYPE_NONE.is_boolean*/
  185. /*No:TYPE_NONE.is_generic*/
  186. /*No:TYPE_NONE.jvm_xaload*/
  187. /*No:TYPE_NONE.is_real*/
  188.  
  189.  
  190. T0* r273jvm_root_descriptor(void){
  191. if(fBC12jvm_root_descriptor==0){
  192. fBC12jvm_root_descriptor=1;
  193. {T7*n=malloc(sizeof(*n));
  194. *n=M7;
  195. r7make(n,12);
  196. oBC12jvm_root_descriptor=(T0*)n;
  197. }
  198. r7extend(((T7*)oBC12jvm_root_descriptor),'L');
  199. r7append(((T7*)oBC12jvm_root_descriptor),r273jvm_root_class());
  200. r7extend(((T7*)oBC12jvm_root_descriptor),'\73');
  201. }
  202. return oBC12jvm_root_descriptor;}
  203. /*No:TYPE_NONE.is_any*/
  204. /*No:TYPE_NONE.is_basic_eiffel_expanded*/
  205. /*No:TYPE_NONE.jvm_descriptor_in*/
  206. /*No:TYPE_NONE.is_string*/
  207.  
  208.  
  209. T6 r273is_native_array(T273* C){
  210. T6 R=0;
  211. T0* _tna=NULL;
  212. _tna=(T0*)C;
  213. if(NULL!=(_tna))switch(((T0*)_tna)->id) {
  214. case 267: 
  215. break;
  216. default:
  217. _tna=NULL;
  218. };R=(_tna)!=((void*)(NULL));
  219. return R;
  220. }
  221. /*No:TYPE_NONE.is_integer*/
  222. /*No:TYPE_NONE.is_anchored*/
  223. /*No:TYPE_NONE.is_run_type*/
  224. /*No:TYPE_NONE.is_reference*/
  225. /*No:TYPE_NONE.is_none*/
  226. /*No:TYPE_NONE.jvm_return_code*/
  227. /*No:TYPE_NONE.jvm_target_descriptor_in*/
  228. /*No:TYPE_NONE.jvm_xastore*/
  229. /*No:TYPE_NONE.is_like_argument*/
  230.  
  231.  
  232. T2 r273jvm_stack_space(void){
  233. T2 R=0;
  234. /*[IF*/
  235. /*AF*//*AE*/
  236. R=1;
  237. /*FI]*/
  238. return R;
  239. }
  240. /*No:TYPE_NONE.is_double*/
  241.  
  242.  
  243. T2 r273jvm_expanded_from_reference(T0* a1){
  244. T2 R=0;
  245. return R;
  246. }
  247. /*No:CALL_INFIX_OR_ELSE.static_value*/
  248. /*No:CALL_INFIX_OR_ELSE.feature_name*/
  249.  
  250.  
  251. T6 r124is_static(T124* C){
  252. T6 R=0;
  253. /*[IF*/
  254. if(X52is_boolean(X109result_type((C)->_target/*4*/))){
  255. /*[IF*/
  256. if(X109is_static((C)->_target/*4*/)){
  257. /*[IF*/
  258. if((X109static_value((C)->_target/*4*/))==(1)){
  259. R=1;
  260. C->_static_value_mem=1;
  261. }
  262. else{
  263. R=X109is_static(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
  264. C->_static_value_mem=X109static_value(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
  265. }
  266. /*FI]*/
  267. }
  268. /*FI]*/
  269. }
  270. /*FI]*/
  271. return R;
  272. }
  273. /*No:CALL_INFIX_OR_ELSE.is_manifest_string*/
  274.  
  275.  
  276. T0* r124start_position(T124* C){
  277. T0* R=NULL;
  278. R=((T141*)((C)->_feature_name/*12*/))->_start_position/*8*/;
  279. return R;
  280. }
  281.  
  282.  
  283. T0* r124add_comment(T124* C,T0* a1){
  284. T0* R=NULL;
  285. /*[IF*/
  286. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r73count(((T73*)((((T85*)a1))->_list/*4*/)))/*)*/)==(0))){
  287. R=(T0*)C;
  288. }
  289. else{
  290. {T234*n=malloc(sizeof(*n));
  291. *n=M234;
  292. r234make(n,(T0*)C,a1);
  293. R=(T0*)n;
  294. }
  295. }
  296. /*FI]*/
  297. return R;
  298. }
  299.  
  300.  
  301. T2 r124to_integer(T124* C){
  302. T2 R=0;
  303. r124error(r124start_position(C),((T0*)ms13_45846));
  304. return R;
  305. }
  306. /*No:CALL_INFIX_OR_ELSE.us_or_else*/
  307.  
  308.  
  309. T6 r124use_current(T124* C){
  310. T6 R=0;
  311. /*[IF*/
  312. {/*AT*/R=r152use_current((T152*)((C)->_arguments/*8*/));
  313. }
  314. /*FI]*/
  315. /*[IF*/
  316. if(R){
  317. }
  318.  else if(X109is_current((C)->_target/*4*/)){
  319. R=X27use_current((C)->_run_feature/*16*/);
  320. }
  321. else{
  322. R=X109use_current((C)->_target/*4*/);
  323. }
  324. /*FI]*/
  325. return R;
  326. }
  327. /*No:CALL_INFIX_OR_ELSE.jvm_branch_if_true*/
  328.  
  329.  
  330. T0* r124to_runnable(T124* C,T0* a1){
  331. T0* R=NULL;
  332. T0* _rf=NULL;
  333. T0* _tbee=NULL;
  334. T0* _at=NULL;
  335. T0* _tt=NULL;
  336. T0* _a=NULL;
  337. T0* _t=NULL;
  338. _t=r124runnable_expression((C)->_target/*4*/,a1);
  339. _a=r124runnable_args((C)->_arguments/*8*/,a1);
  340. _tt=X109result_type(_t);
  341. _at=X109result_type(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
  342. /*[IF*/
  343. /*AF*//*AE*/
  344. /*FI]*/
  345. _rf=r124run_feature_for(C,_t,a1);
  346. /*[IF*/
  347. if(((C)->_run_feature/*16*/)==((void*)(NULL))){
  348. C->_target=_t;
  349. C->_arguments=_a;
  350. C->_run_feature=_rf;
  351. r124run_feature_match(C,a1);
  352. R=(T0*)C;
  353. }
  354.  else if(((_t)==((void*)((C)->_target/*4*/)))&&((_a)==((void*)((C)->_arguments/*8*/)))){
  355. R=(T0*)C;
  356. }
  357. else{
  358. {T124*n=malloc(sizeof(*n));
  359. *n=M124;
  360. r124with(n,_t,(C)->_feature_name/*12*/,_a,_rf,a1);
  361. R=(T0*)n;
  362. }
  363. }
  364. /*FI]*/
  365. return R;
  366. }
  367.  
  368.  
  369. T2 r124compile_to_jvm_into(T124* C,T0* a1){
  370. T2 R=0;
  371. R=r124standard_compile_to_jvm_into(C,a1);
  372. return R;
  373. }
  374. /*No:CALL_INFIX_OR_ELSE.is_pre_computable*/
  375. /*No:CALL_INFIX_OR_ELSE.fz_bad_argument*/
  376. /*No:CALL_INFIX_OR_ELSE.fz_iinaiv*/
  377.  
  378.  
  379. T0* r124result_type(T124* C){
  380. T0* R=NULL;
  381. T0* _tla=NULL;
  382. R=X27result_type((C)->_run_feature/*16*/);
  383. /*[IF*/
  384. if(X52is_like_current(R)){
  385. R=/*X27current_type*/((T0*)((T26*)((C)->_run_feature/*16*/))->_current_type/*4*/);
  386. }
  387. else{
  388. _tla=R;
  389. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  390. case 262: 
  391. break;
  392. default:
  393. _tla=NULL;
  394. };/*[IF*/
  395. if((_tla)!=((void*)(NULL))){
  396. R=X52run_type(X109result_type(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/));
  397. }
  398. /*FI]*/
  399. }
  400. /*FI]*/
  401. return R;
  402. }
  403. /*No:CALL_INFIX_OR_ELSE.static_value_mem*/
  404. /*No:CALL_INFIX_OR_ELSE.run_feature*/
  405.  
  406.  
  407. T0* r124runnable_args(T0* a1,T0* a2){
  408. T0* R=NULL;
  409. R=r152to_runnable(((T152*)a1),a2);
  410. /*[IF*/
  411. if((R)==((void*)(NULL))){
  412. r21add_position(r152start_position(((T152*)a1)));
  413. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms13_13065);
  414. r21fatal_error((T21*)(oBC12eh),b1);
  415. }/*]*/
  416. }
  417. /*FI]*/
  418. return R;
  419. }
  420.  
  421.  
  422. void r124standard_compile_target_to_jvm(T124* C){
  423. r124compile_to_jvm(C);
  424. X52jvm_check_class_invariant(r124result_type(C));
  425. }
  426. /*No:CALL_INFIX_OR_ELSE.compile_to_jvm_assignment*/
  427. /*No:CALL_INFIX_OR_ELSE.fz_07*/
  428.  
  429.  
  430. void r124compile_to_jvm_old(T124* C){
  431. X109compile_to_jvm_old((C)->_target/*4*/);
  432. /*[IF*/
  433. {/*AT*/r152compile_to_jvm_old((T152*)((C)->_arguments/*8*/));
  434. }
  435. /*FI]*/
  436. }
  437. /*No:CALL_INFIX_OR_ELSE.jvm_assign*/
  438. /*No:CALL_INFIX_OR_ELSE.jvm_branch_if_false*/
  439.  
  440.  
  441. void r124compile_to_jvm(T124* C){
  442. T2 _point2=0;
  443. T2 _point1=0;
  444. X109compile_to_jvm((C)->_target/*4*/);
  445. _point1=r28opcode_ifne((T28*)(oBC12code_attribute));
  446. X109compile_to_jvm(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
  447. _point2=r28opcode_goto((T28*)(oBC12code_attribute));
  448. r28resolve_u2_branch(_point1);
  449. /*[IRF3.4opcode_iconst_1*/r28opcode((T28*)(oBC12code_attribute),4,1);
  450. /*]*/
  451. r28resolve_u2_branch(_point2);
  452. }
  453. /*No:CALL_INFIX_OR_ELSE.arg_count*/
  454.  
  455.  
  456. void r124with(T124* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  457. C->_target=a1;
  458. C->_feature_name=a2;
  459. C->_arguments=a3;
  460. C->_run_feature=a4;
  461. r124run_feature_match(C,a5);
  462. }
  463. /*No:CALL_INFIX_OR_ELSE.is_result*/
  464. /*No:CALL_INFIX_OR_ELSE.fatal_error*/
  465.  
  466.  
  467. void r124run_feature_match(T124* C,T0* a1){
  468. r124run_feature_has_result(C);
  469. r152match_with((T152*)((C)->_arguments/*8*/),(C)->_run_feature/*16*/,a1);
  470. }
  471. /*No:CALL_INFIX_OR_ELSE.arguments*/
  472.  
  473.  
  474. T0* r124runnable_expression(T0* a1,T0* a2){
  475. T0* R=NULL;
  476. R=X109to_runnable(a1,a2);
  477. /*[IF*/
  478. if((R)==((void*)(NULL))){
  479. r21add_position(X109start_position(a1));
  480. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms121_16515);
  481. r21fatal_error((T21*)(oBC12eh),b1);
  482. }/*]*/
  483. }
  484. /*FI]*/
  485. return R;
  486. }
  487. /*No:CALL_INFIX_OR_ELSE.can_be_dropped*/
  488. /*No:CALL_INFIX_OR_ELSE.implicit_cast*/
  489. /*No:CALL_INFIX_OR_ELSE.compile_target_to_jvm*/
  490. /*No:CALL_INFIX_OR_ELSE.isa_dca_inline_argument*/
  491. /*No:CALL_INFIX_OR_ELSE.arg1*/
  492.  
  493.  
  494. void r124run_feature_has_result(T124* C){
  495. /*[IF*/
  496. if((X27result_type((C)->_run_feature/*16*/))==((void*)(NULL))){
  497. r21add_position(X27start_position((C)->_run_feature/*16*/));
  498. r21add_position(((T141*)((C)->_feature_name/*12*/))->_start_position/*8*/);
  499. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms120_53650);
  500. r21fatal_error((T21*)(oBC12eh),b1);
  501. }/*]*/
  502. }
  503. /*FI]*/
  504. }
  505.  
  506.  
  507. T2 r124jvm_standard_branch_if_false(T124* C){
  508. T2 R=0;
  509. r124compile_to_jvm(C);
  510. R=r28opcode_ifeq((T28*)(oBC12code_attribute));
  511. return R;
  512. }
  513.  
  514.  
  515. T0* r124run_feature_for(T124* C,T0* a1,T0* a2){
  516. T0* R=NULL;
  517. T0* _rc=NULL;
  518. _rc=X52run_class(X109result_type(a1));
  519. R=r23get_rf(((T23*)_rc),a1,(C)->_feature_name/*12*/,a2);
  520. return R;
  521. }
  522. /*No:CALL_INFIX_OR_ELSE.target*/
  523.  
  524.  
  525. void r124error(T0* a1,T0* a2){
  526. r21add_position(a1);
  527. r21error((T21*)(oBC12eh),a2);
  528. }
  529.  
  530.  
  531. void r124make(T124* C,T0* a1,T0* a2,T0* a3){
  532. C->_target=a1;
  533. {T141*n=malloc(sizeof(*n));
  534. *n=M141;
  535. r141make(n,r124operator(),a2);
  536. C->_feature_name=(T0*)n;
  537. }
  538. {T152*n=malloc(sizeof(*n));
  539. *n=M152;
  540. /*[IRF3.3make_1*/((((T152*)(n)))->_first_one)=(a3);
  541. /*]*/
  542. C->_arguments=(T0*)n;
  543. }
  544. }
  545. /*No:CALL_INFIX_OR_ELSE.is_current*/
  546.  
  547.  
  548. T2 r124standard_compile_to_jvm_into(T124* C,T0* a1){
  549. T2 R=0;
  550. r124compile_to_jvm(C);
  551. R=X52jvm_convert_to(X52run_type(r124result_type(C)),a1);
  552. return R;
  553. }
  554. /*No:CALL_INFIX_OR_ELSE.is_void*/
  555.  
  556.  
  557. T0* r124operator(void){
  558. T0* R=NULL;
  559. R=((T0*)ms14_8316);
  560. return R;
  561. }
  562.  
  563.  
  564. T2 r124jvm_standard_branch_if_true(T124* C){
  565. T2 R=0;
  566. r124compile_to_jvm(C);
  567. R=r28opcode_ifne((T28*)(oBC12code_attribute));
  568. return R;
  569. }
  570.  
  571.  
  572. void r124afd_check(T124* C){
  573. T0* _running=NULL;
  574. T0* _rc=NULL;
  575. _rc=X52run_class(X109result_type((C)->_target/*4*/));
  576. _running=(((T23*)_rc))->_running/*12*/;
  577. /*[IF*/
  578. if((_running)==((void*)(NULL))){
  579. r21add_position(X109start_position((C)->_target/*4*/));
  580. /*[IRF3.6append*/{T0* b1=((T0*)ms121_181815);
  581. r7append((T7*)(oBC21explanation),b1);
  582. }/*]*/
  583. /*[IRF3.6append*/{T0* b1=X52run_time_mark((((T23*)_rc))->_current_type/*0*/);
  584. r7append((T7*)(oBC21explanation),b1);
  585. }/*]*/
  586. /*[IRF3.6append*/{T0* b1=((T0*)ms13_20094);
  587. r7append((T7*)(oBC21explanation),b1);
  588. }/*]*/
  589. r21print_as_warning((T21*)(oBC12eh));
  590. r23set_at_run_time(((T23*)_rc));
  591. }
  592.  else if((r340count(((T340*)_running)))>(1)){
  593. r335update((C)->_target/*4*/,(C)->_run_feature/*16*/);
  594. }
  595. /*FI]*/
  596. X109afd_check((C)->_target/*4*/);
  597. /*[IF*/
  598. {/*AT*/r152afd_check((T152*)((C)->_arguments/*8*/));
  599. }
  600. /*FI]*/
  601. }
  602. /*No:BINARY_FILE_WRITE.path*/
  603.  
  604.  
  605. T8 r38bfw_open(T2 a1,T8 a2){
  606. T8 R=0;
  607. R=fopen(a2,"wb");return R;
  608. }
  609.  
  610.  
  611. void r38put_byte(T38* C,T3 a1){
  612. T6 _bool=0;
  613. /*[IF*/
  614. if(_bool){
  615. r38put_byte(C,a1);
  616. }
  617. else{
  618. fputc(a1,C->_output_stream);}
  619. /*FI]*/
  620. }
  621.  
  622.  
  623. void r38connect_to(T38* C,T0* a1){
  624. C->_output_stream=r38bfw_open((((T7*)a1))->_count/*4*/,r7to_external(((T7*)a1)));
  625. /*[IF*/
  626. if((NULL!=(C)->_output_stream/*4*/)){
  627. C->_path=a1;
  628. }
  629. /*FI]*/
  630. }
  631. /*No:BINARY_FILE_WRITE.is_connected*/
  632. /*No:BINARY_FILE_WRITE.output_stream*/
  633.  
  634.  
  635. void r38disconnect(T38* C){
  636. fclose((C)->_output_stream/*4*/);
  637. C->_path=NULL;
  638. }
  639. /*No:BINARY_FILE_WRITE.make*/
  640.  
  641.  
  642. T0* r296run_require(T0* a1){
  643. T0* R=NULL;
  644. T0* _ct=NULL;
  645. T0* _ar=NULL;
  646. T0* _hc=NULL;
  647. T0* _er=NULL;
  648. T0* _r=NULL;
  649. T2 _i=0;
  650. r365clear((T365*)(oBC95require_collector));
  651. _ct=/*X27current_type*/((T0*)(((T26*)a1))->_current_type/*4*/);
  652. r63collect_for((T63*)(X52base_class(_ct)),1,/*X27name*/((T0*)(((T26*)a1))->_name/*16*/));
  653. /*[IF*/
  654. if(!(r365empty((T365*)(oBC95require_collector)))){
  655. _i=1;
  656. while (!((_i)>(((T365*)(oBC95require_collector))->_upper/*8*/))) {
  657. _er=r365item((T365*)(oBC95require_collector),_i);
  658. _hc=(((T291*)_er))->_header_comment/*4*/;
  659. /*[IF*/
  660. if(!(/*(IRF4.7empty*/((((T291*)_er))->_list/*8*/)==(NULL)/*)*/)){
  661. _r=r296runnable((((T291*)_er))->_list/*8*/,_ct,a1);
  662. /*[IF*/
  663. if((_r)!=((void*)(NULL))){
  664. {T291*n=malloc(sizeof(*n));
  665. *n=M291;
  666. r291make_runnable(n,_r,_ct,a1);
  667. _er=(T0*)n;
  668. }
  669. /*[IRF3.3set_header_comment*/((((T291*)(((T291*)_er))))->_header_comment)=(_hc);
  670. /*]*/
  671. /*[IF*/
  672. if((_ar)==((void*)(NULL))){
  673. _ar=se_ma365(1,
  674. _er);
  675. }
  676. else{
  677. r365add_last(((T365*)_ar),_er);
  678. }
  679. /*FI]*/
  680. }
  681. /*FI]*/
  682. }
  683. /*FI]*/
  684. _i=(_i)+(1);
  685. }
  686. /*[IF*/
  687. if((_ar)!=((void*)(NULL))){
  688. {T367*n=malloc(sizeof(*n));
  689. *n=M367;
  690. /*[IRF3.3make*/((((T367*)(n)))->_list)=(_ar);
  691. /*]*/
  692. R=(T0*)n;
  693. }
  694. }
  695. /*FI]*/
  696. }
  697. /*FI]*/
  698. return R;
  699. }
  700. /*No:EXTERNAL_FUNCTION.base_class*/
  701.  
  702.  
  703. void r296set_rescue_compound(T296* C,T0* a1){
  704. /*[IF*/
  705. if((a1)!=((void*)(NULL))){
  706. r21add_position(r220start_position(((T220*)a1)));
  707. }
  708. else{
  709. r21add_position(r296start_position(C));
  710. }
  711. /*FI]*/
  712. /*[IRF3.6append*/{T0* b1=((T0*)ms294_126759);
  713. r7append((T7*)(oBC21explanation),b1);
  714. }/*]*/
  715. r21print_as_fatal_error((T21*)(oBC12eh));
  716. }
  717.  
  718.  
  719. T0* r296start_position(T296* C){
  720. T0* R=NULL;
  721. R=X50start_position(/*(IRF4.6first_name*/r87item(((T87*)((C)->_names/*8*/)),1)/*)*/);
  722. return R;
  723. }
  724.  
  725.  
  726. T6 r296is_merge_with(T296* C,T0* a1,T0* a2){
  727. T6 R=0;
  728. R=1;
  729. /*[IF*/
  730. if(((C)->_result_type/*48*/)!=((void*)(X95result_type(a1)))){
  731. /*[IF*/
  732. if((((C)->_result_type/*48*/)==((void*)(NULL)))||((X95result_type(a1))==((void*)(NULL)))){
  733. R=0;
  734. }
  735. /*FI]*/
  736. }
  737. /*FI]*/
  738. /*[IF*/
  739. if(((C)->_arguments/*20*/)!=((void*)(X95arguments(a1)))){
  740. /*[IF*/
  741. if((((C)->_arguments/*20*/)==((void*)(NULL)))||((X95arguments(a1))==((void*)(NULL)))){
  742. R=0;
  743. }
  744.  else if((/*(IRF4.6count*/(((T195*)(((T191*)((C)->_arguments/*20*/))->_flat_list/*8*/)))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T195*)(((T191*)(X95arguments(a1)))->_flat_list/*8*/)))->_upper/*12*//*)*/)){
  745. R=0;
  746. }
  747. /*FI]*/
  748. }
  749. /*FI]*/
  750. /*[IF*/
  751. if(R){
  752. /*[IF*/
  753. if(((C)->_result_type/*48*/)!=((void*)(NULL))){
  754. R=X52is_a_in((C)->_result_type/*48*/,X95result_type(a1),a2);
  755. }
  756. /*FI]*/
  757. /*[IF*/
  758. if((R)&&(((C)->_arguments/*20*/)!=((void*)(NULL)))){
  759. R=r191is_a_in((T191*)((C)->_arguments/*20*/),X95arguments(a1),a2);
  760. }
  761. /*FI]*/
  762. /*[IF*/
  763. if(!(R)){
  764. R=1;
  765. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
  766. /*]*/
  767. /*[IRF3.3clear*/((((T58*)((T58*)(oBC21positions))))->_upper)=(-(1));
  768. /*]*/
  769. /*]*/
  770. /*[IF*/
  771. if(((C)->_result_type/*48*/)!=((void*)(NULL))){
  772. R=X52is_a_in(X95result_type(a1),(C)->_result_type/*48*/,a2);
  773. }
  774. /*FI]*/
  775. /*[IF*/
  776. if((R)&&(((C)->_arguments/*20*/)!=((void*)(NULL)))){
  777. R=r191is_a_in((T191*)(X95arguments(a1)),(C)->_arguments/*20*/,a2);
  778. }
  779. /*FI]*/
  780. }
  781. /*FI]*/
  782. }
  783. /*FI]*/
  784. /*[IF*/
  785. if(R){
  786. r296merge_header_comments(C,a1);
  787. }
  788. /*FI]*/
  789. return R;
  790. }
  791.  
  792.  
  793. T0* r296runnable(T0* a1,T0* a2,T0* a3){
  794. T0* R=NULL;
  795. T0* _a=NULL;
  796. T2 _i=0;
  797. /*[IF*/
  798. if(!(r108empty(((T108*)a1)))){
  799. R=r108twin(((T108*)a1));
  800. _i=(((T108*)R))->_upper/*8*/;
  801. while (!((_i)==(0))) {
  802. r22push((T22*)(oBC12small_eiffel),a3);
  803. _a=r105to_runnable((T105*)(r108item(((T108*)R),_i)),a2);
  804. /*[IF*/
  805. if((_a)==((void*)(NULL))){
  806. r296error(r105start_position((T105*)(r108item(((T108*)R),_i))),((T0*)ms13_14266));
  807. }
  808. else{
  809. /*[IRF3.6put*/{T108* C1=((T108*)R);
  810. T0* b1=_a;
  811. T2 b2=_i;
  812. ((C1)->_storage/*0*/)[(b2)-((C1)->_lower/*12*/)]=(b1);
  813. }/*]*/
  814. }
  815. /*FI]*/
  816. r22pop((T22*)(oBC12small_eiffel));
  817. _i=(_i)-(1);
  818. }
  819. }
  820. /*FI]*/
  821. return R;
  822. }
  823. /*No:EXTERNAL_FUNCTION.first_name*/
  824. /*No:EXTERNAL_FUNCTION.em1*/
  825.  
  826.  
  827. T6 r296use_current(T296* C){
  828. T6 R=0;
  829. R=X293use_current((C)->_native/*40*/,(T0*)C);
  830. return R;
  831. }
  832. /*No:EXTERNAL_FUNCTION.header_comment*/
  833. /*No:EXTERNAL_FUNCTION.names*/
  834. /*No:EXTERNAL_FUNCTION.fz_03*/
  835.  
  836.  
  837. void r296make_external_routine(T296* C,T0* a1,T0* a2){
  838. C->_native=a1;
  839. C->_alias_string=a2;
  840. }
  841. /*No:EXTERNAL_FUNCTION.result_type*/
  842. /*No:EXTERNAL_FUNCTION.code_require*/
  843. /*No:EXTERNAL_FUNCTION.make_e_feature*/
  844.  
  845.  
  846. void r296add_into(T296* C,T0* a1){
  847. T0* _fn=NULL;
  848. T2 _i=0;
  849. C->_base_class=r59base_class((T59*)(X50start_position(r87item((T87*)((C)->_names/*8*/),1))));
  850. _i=1;
  851. while (!((_i)>(r87count((T87*)((C)->_names/*8*/))))) {
  852. _fn=r87item((T87*)((C)->_names/*8*/),_i);
  853. /*[IF*/
  854. if(r94has(((T94*)a1),X50to_key(_fn))){
  855. _fn=/*X95first_name*/((T0*)/*(IRF4.6first_name*/r87item(((T87*)(((T203*)(r94at(((T94*)a1),X50to_key(_fn))))->_names/*8*/)),1)/*)*/);
  856. r21add_position(X50start_position(_fn));
  857. r21add_position(X50start_position(r87item((T87*)((C)->_names/*8*/),_i)));
  858. r21error((T21*)(oBC12eh),((T0*)ms95_41905));
  859. /*[IRF3.6append*/{T0* b1=X50to_string(_fn);
  860. r7append((T7*)(oBC21explanation),b1);
  861. }/*]*/
  862. r21error((T21*)(oBC12eh),((T0*)ms13_47));
  863. }
  864. else{
  865. r94put(((T94*)a1),(T0*)C,X50to_key(_fn));
  866. }
  867. /*FI]*/
  868. _i=(_i)+(1);
  869. }
  870. }
  871.  
  872.  
  873. T6 r296can_hide(T296* C,T0* a1,T0* a2){
  874. T6 R=0;
  875. /*[IF*/
  876. if(((C)->_result_type/*48*/)!=((void*)(X95result_type(a1)))){
  877. /*[IF*/
  878. if((((C)->_result_type/*48*/)==((void*)(NULL)))||((X95result_type(a1))==((void*)(NULL)))){
  879. r21add_position(X95start_position(a1));
  880. r296error(r296start_position(C),((T0*)ms95_64647));
  881. }
  882. /*FI]*/
  883. }
  884. /*FI]*/
  885. /*[IF*/
  886. if(((C)->_arguments/*20*/)!=((void*)(X95arguments(a1)))){
  887. /*[IF*/
  888. if((((C)->_arguments/*20*/)==((void*)(NULL)))||((X95arguments(a1))==((void*)(NULL)))){
  889. r21add_position(X95start_position(a1));
  890. r296error(r296start_position(C),((T0*)ms95_83182));
  891. }
  892.  else if((/*(IRF4.6count*/(((T195*)(((T191*)((C)->_arguments/*20*/))->_flat_list/*8*/)))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T195*)(((T191*)(X95arguments(a1)))->_flat_list/*8*/)))->_upper/*12*//*)*/)){
  893. r21add_position(X95start_position(a1));
  894. r296error(r296start_position(C),((T0*)ms95_67155));
  895. }
  896. /*FI]*/
  897. }
  898. /*FI]*/
  899. /*[IF*/
  900. if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
  901. /*[IF*/
  902. if(((C)->_result_type/*48*/)!=((void*)(NULL))){
  903. /*[IF*/
  904. if(!(X52is_a_in((C)->_result_type/*48*/,X95result_type(a1),a2))){
  905. /*[IRF3.6append*/{T0* b1=((T0*)ms95_54285);
  906. r7append((T7*)(oBC21explanation),b1);
  907. }/*]*/
  908. /*[IRF3.6append*/{T0* b1=X52run_time_mark((((T23*)a2))->_current_type/*0*/);
  909. r7append((T7*)(oBC21explanation),b1);
  910. }/*]*/
  911. r21error((T21*)(oBC12eh),((T0*)ms13_47));
  912. }
  913. /*FI]*/
  914. }
  915. /*FI]*/
  916. }
  917. /*FI]*/
  918. /*[IF*/
  919. if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
  920. /*[IF*/
  921. if(((C)->_arguments/*20*/)!=((void*)(NULL))){
  922. /*[IF*/
  923. if(!(r191is_a_in((T191*)((C)->_arguments/*20*/),X95arguments(a1),a2))){
  924. r21add_position(X95start_position(a1));
  925. r21add_position(r296start_position(C));
  926. /*[IRF3.6append*/{T0* b1=((T0*)ms95_54285);
  927. r7append((T7*)(oBC21explanation),b1);
  928. }/*]*/
  929. /*[IRF3.6append*/{T0* b1=X52run_time_mark((((T23*)a2))->_current_type/*0*/);
  930. r7append((T7*)(oBC21explanation),b1);
  931. }/*]*/
  932. r21error((T21*)(oBC12eh),((T0*)ms13_47));
  933. }
  934. /*FI]*/
  935. }
  936. /*FI]*/
  937. }
  938. /*FI]*/
  939. R=(/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0);
  940. /*[IF*/
  941. if(R){
  942. r296merge_header_comments(C,a1);
  943. }
  944. /*FI]*/
  945. return R;
  946. }
  947. /*No:EXTERNAL_FUNCTION.ensure_assertion*/
  948.  
  949.  
  950. T0* r296run_ensure(T0* a1){
  951. T0* R=NULL;
  952. T0* _ct=NULL;
  953. T0* _r=NULL;
  954. r108clear((T108*)(oBC95assertion_collector));
  955. /*[IRF3.3clear*/{T0* _default_item=NULL;
  956. ((((T364*)((T364*)(oBC95header_comment_memory))))->_item)=(_default_item);
  957. }/*]*/
  958. _ct=/*X27current_type*/((T0*)(((T26*)a1))->_current_type/*4*/);
  959. r63collect_for((T63*)(X52base_class(_ct)),2,/*X27name*/((T0*)(((T26*)a1))->_name/*16*/));
  960. _r=r296runnable(oBC95assertion_collector,_ct,a1);
  961. /*[IF*/
  962. if((_r)!=((void*)(NULL))){
  963. {T219*n=malloc(sizeof(*n));
  964. *n=M219;
  965. r219make_runnable(n,_r,_ct,a1);
  966. R=(T0*)n;
  967. }
  968. /*[IRF3.3set_header_comment*/((((T219*)(((T219*)R))))->_header_comment)=(((T364*)(oBC95header_comment_memory))->_item/*0*/);
  969. /*]*/
  970. /*[IRF3.3clear*/{T0* _default_item=NULL;
  971. ((((T364*)((T364*)(oBC95header_comment_memory))))->_item)=(_default_item);
  972. }/*]*/
  973. }
  974. /*FI]*/
  975. return R;
  976. }
  977.  
  978.  
  979. void r296check_obsolete(T296* C){
  980. /*[IF*/
  981. if(!(((T22*)(oBC12small_eiffel))->_short_flag/*8*/)){
  982. /*[IF*/
  983. if(((C)->_obsolete_mark/*24*/)!=((void*)(NULL))){
  984. /*[IRF3.6append*/{T0* b1=((T0*)ms218_39396);
  985. r7append((T7*)(oBC21explanation),b1);
  986. }/*]*/
  987. /*[IRF3.6append*/{T0* b1=((T174*)((C)->_obsolete_mark/*24*/))->_to_string/*8*/;
  988. r7append((T7*)(oBC21explanation),b1);
  989. }/*]*/
  990. r296warning(r296start_position(C),((T0*)ms13_166));
  991. }
  992. /*FI]*/
  993. }
  994. /*FI]*/
  995. }
  996.  
  997.  
  998. T0* r296try_to_undefine(T296* C,T0* a1,T0* a2){
  999. T0* R=NULL;
  1000. T0* _fn2=NULL;
  1001. r21add_position(X50start_position(a1));
  1002. _fn2=r87feature_name((T87*)((C)->_names/*8*/),X50to_key(a1));
  1003. /*[IF*/
  1004. if((_fn2)!=((void*)(NULL))){
  1005. X50undefine_in(_fn2,a2);
  1006. }
  1007. /*FI]*/
  1008. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
  1009. /*]*/
  1010. /*[IRF3.3clear*/((((T58*)((T58*)(oBC21positions))))->_upper)=(-(1));
  1011. /*]*/
  1012. /*]*/
  1013. R=r296try_to_undefine_aux(C,a1,a2);
  1014. /*[IF*/
  1015. if((R)!=((void*)(NULL))){
  1016. /*X289set_clients*//*[IRF3.3set_clients*/((((T292*)(((T292*)R))))->_clients)=((C)->_clients/*16*/);
  1017. /*]*/
  1018. r296merge_header_comments(C,R);
  1019. }
  1020. else{
  1021. r63fatal_undefine(((T63*)a2),a1);
  1022. }
  1023. /*FI]*/
  1024. return R;
  1025. }
  1026. /*No:EXTERNAL_FUNCTION.is_deferred*/
  1027. /*No:EXTERNAL_FUNCTION.set_clients*/
  1028. /*No:EXTERNAL_FUNCTION.native*/
  1029. /*No:EXTERNAL_FUNCTION.code_ensure*/
  1030. /*No:EXTERNAL_FUNCTION.nb_errors*/
  1031.  
  1032.  
  1033. void r296make_routine(T296* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  1034. /*[IRF3.3make_e_feature*/((((T296*)(C)))->_names)=(a1);
  1035. /*]*/
  1036. C->_header_comment=a4;
  1037. C->_arguments=a2;
  1038. C->_obsolete_mark=a3;
  1039. C->_require_assertion=a5;
  1040. }
  1041.  
  1042.  
  1043. T0* r296to_run_feature(T296* C,T0* a1,T0* a2){
  1044. T0* R=NULL;
  1045. r296check_obsolete(C);
  1046. {T386*n=malloc(sizeof(*n));
  1047. *n=M386;
  1048. r386make(n,a1,a2,(T0*)C);
  1049. R=(T0*)n;
  1050. }
  1051. return R;
  1052. }
  1053.  
  1054.  
  1055. void r296merge_header_comments(T296* C,T0* a1){
  1056. /*[IF*/
  1057. if(((T22*)(oBC12small_eiffel))->_short_flag/*8*/){
  1058. /*[IF*/
  1059. if(((C)->_header_comment/*12*/)==((void*)(NULL))){
  1060. C->_header_comment=/*X95header_comment*/((T0*)(((T203*)a1))->_header_comment/*12*/);
  1061. }
  1062.  else if((/*X95header_comment*/((T0*)(((T203*)a1))->_header_comment/*12*/))==((void*)(NULL))){
  1063. X95set_header_comment(a1,(C)->_header_comment/*12*/);
  1064. }
  1065. /*FI]*/
  1066. }
  1067. /*FI]*/
  1068. }
  1069. /*No:EXTERNAL_FUNCTION.arguments*/
  1070. /*No:EXTERNAL_FUNCTION.require_assertion*/
  1071.  
  1072.  
  1073. void r296warning(T0* a1,T0* a2){
  1074. r21add_position(a1);
  1075. r21warning((T21*)(oBC12eh),a2);
  1076. }
  1077.  
  1078.  
  1079. T0* r296try_to_undefine_aux(T296* C,T0* a1,T0* a2){
  1080. T0* R=NULL;
  1081. {T292*n=malloc(sizeof(*n));
  1082. *n=M292;
  1083. r292from_effective(n,a1,(C)->_arguments/*20*/,(C)->_result_type/*48*/,(C)->_require_assertion/*28*/,(C)->_ensure_assertion/*32*/,a2);
  1084. R=(T0*)n;
  1085. }
  1086. return R;
  1087. }
  1088. /*No:EXTERNAL_FUNCTION.set_ensure_assertion*/
  1089. /*No:EXTERNAL_FUNCTION.fz_bad_assertion*/
  1090. /*No:EXTERNAL_FUNCTION.fz_dot*/
  1091. /*No:EXTERNAL_FUNCTION.alias_string*/
  1092.  
  1093.  
  1094. void r296error(T0* a1,T0* a2){
  1095. r21add_position(a1);
  1096. r21error((T21*)(oBC12eh),a2);
  1097. }
  1098.  
  1099.  
  1100. void r296make(T296* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7,T0* a8){
  1101. r296make_routine(C,a1,a2,a4,a5,a6);
  1102. C->_result_type=a3;
  1103. r296make_external_routine(C,a7,a8);
  1104. }
  1105. /*No:EXTERNAL_FUNCTION.end_comment*/
  1106.  
  1107.  
  1108. void r296collect_for(T296* C,T2 a1){
  1109. T0* _er=NULL;
  1110. /*[IF*/
  1111. if((a1)==(1)){
  1112. _er=(C)->_require_assertion/*28*/;
  1113. /*[IF*/
  1114. if((_er)!=((void*)(NULL))){
  1115. /*[IF*/
  1116. if(!(r365fast_has((T365*)(oBC95require_collector),_er))){
  1117. r365add_last((T365*)(oBC95require_collector),_er);
  1118. }
  1119. /*FI]*/
  1120. }
  1121. /*FI]*/
  1122. }
  1123. else{
  1124. /*[IF*/
  1125. if(((C)->_ensure_assertion/*32*/)!=((void*)(NULL))){
  1126. /*[IRF3.3set_item*/((((T364*)((T364*)(oBC95header_comment_memory))))->_item)=(((T219*)((C)->_ensure_assertion/*32*/))->_header_comment/*4*/);
  1127. /*]*/
  1128. r219add_into((T219*)((C)->_ensure_assertion/*32*/),oBC95assertion_collector);
  1129. }
  1130. /*FI]*/
  1131. }
  1132. /*FI]*/
  1133. }
  1134.  
  1135.  
  1136. void r296set_header_comment(T296* C,T0* a1){
  1137. /*[IF*/
  1138. if(((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r73count(((T73*)((((T85*)a1))->_list/*4*/)))/*)*/)>(1))){
  1139. C->_end_comment=a1;
  1140. }
  1141. /*FI]*/
  1142. }
  1143. /*No:EXTERNAL_FUNCTION.clients*/
  1144. /*No:EXTERNAL_FUNCTION.obsolete_mark*/
  1145. /*No:CREATION_CALL_3.start_position*/
  1146. /*No:CREATION_CALL_3.us_std_file_read*/
  1147.  
  1148.  
  1149. T0* r256add_comment(T256* C,T0* a1){
  1150. T0* R=NULL;
  1151. /*[IF*/
  1152. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r73count(((T73*)((((T85*)a1))->_list/*4*/)))/*)*/)==(0))){
  1153. R=(T0*)C;
  1154. }
  1155. /*AF*/else{
  1156. {T229*n=malloc(sizeof(*n));
  1157. *n=M229;
  1158. r229make(n,(T0*)C,a1);
  1159. R=(T0*)n;
  1160. }
  1161. }
  1162. /*FI]*/
  1163. return R;
  1164. }
  1165.  
  1166.  
  1167. T6 r256use_current(T256* C){
  1168. T6 R=0;
  1169. /*[IF*/
  1170. if((r256run_args(C))!=((void*)(NULL))){
  1171. R=r152use_current((T152*)(r256run_args(C)));
  1172. }
  1173. /*FI]*/
  1174. R=(R)||(X109use_current((C)->_writable/*8*/));
  1175. return R;
  1176. }
  1177.  
  1178.  
  1179. T0* r256run_args(T256* C){
  1180. T0* R=NULL;
  1181. R=X165arguments((C)->_call/*20*/);
  1182. return R;
  1183. }
  1184.  
  1185.  
  1186. T0* r256to_runnable(T256* C,T0* a1){
  1187. T0* R=NULL;
  1188. T0* _t=NULL;
  1189. /*[IF*/
  1190. if(((C)->_current_type/*12*/)==((void*)(NULL))){
  1191. r256check_writable(C,a1);
  1192. _t=X109result_type((C)->_writable/*8*/);
  1193. r256check_created_type(C,_t);
  1194. r256check_creation_clause(C,_t);
  1195. R=(T0*)C;
  1196. }
  1197. else{
  1198. {T256*n=malloc(sizeof(*n));
  1199. *n=M256;
  1200. r256make(n,(C)->_start_position/*4*/,(C)->_writable/*8*/,(C)->_call/*20*/);
  1201. R=(T0*)n;
  1202. }
  1203. R=r256to_runnable(((T256*)R),a1);
  1204. }
  1205. /*FI]*/
  1206. return R;
  1207. }
  1208. /*No:CREATION_CALL_3.writable*/
  1209.  
  1210.  
  1211. T6 r256is_pre_computable(T256* C){
  1212. T6 R=0;
  1213. T0* _rfctbcn=NULL;
  1214. T0* _rfn=NULL;
  1215. T0* _rfct=NULL;
  1216. /*[IF*/
  1217. if(X109is_result((C)->_writable/*8*/)){
  1218. /*[IF*/
  1219. if((r256run_args(C))==((void*)(NULL))){
  1220. R=1;
  1221. }
  1222. else{
  1223. R=r152is_pre_computable((T152*)(r256run_args(C)));
  1224. }
  1225. /*FI]*/
  1226. /*[IF*/
  1227. if(R){
  1228. /*[IF*/
  1229. if(X27is_pre_computable((C)->_run_feature/*16*/)){
  1230. }
  1231. else{
  1232. _rfct=/*X27current_type*/((T0*)((T26*)((C)->_run_feature/*16*/))->_current_type/*4*/);
  1233. _rfctbcn=((T70*)(((T63*)(X52base_class(_rfct)))->_name/*24*/))->_to_string/*0*/;
  1234. _rfn=X50to_string(/*X27name*/((T0*)((T26*)((C)->_run_feature/*16*/))->_name/*16*/));
  1235. /*[IF*/
  1236. if((((T0*)ms14_1696))==((void*)(_rfn))){
  1237. /*[IF*/
  1238. if((((T0*)ms14_1990))==((void*)(_rfctbcn))){
  1239. }
  1240.  else if((((T0*)ms14_14982))==((void*)(_rfctbcn))){
  1241. }
  1242.  else if((((T0*)ms14_5046))==((void*)(_rfctbcn))){
  1243. }
  1244.  else if((((T0*)ms14_12700))==((void*)(_rfctbcn))){
  1245. }
  1246.  else if((((T0*)ms14_16887))==((void*)(_rfctbcn))){
  1247. }
  1248.  else if((((T0*)ms14_19334))==((void*)(_rfctbcn))){
  1249. }
  1250. else{
  1251. R=0;
  1252. }
  1253. /*FI]*/
  1254. }
  1255.  else if((((T0*)ms14_2675))==((void*)(_rfn))){
  1256. /*[IF*/
  1257. if((((T0*)ms14_5046))==((void*)(_rfctbcn))){
  1258. }
  1259. else{
  1260. R=0;
  1261. }
  1262. /*FI]*/
  1263. }
  1264.  else if((((T0*)ms14_27651))==((void*)(_rfn))){
  1265. /*[IF*/
  1266. if((((T0*)ms14_1990))==((void*)(_rfctbcn))){
  1267. }
  1268.  else if((((T0*)ms14_14982))==((void*)(_rfctbcn))){
  1269. }
  1270.  else if((((T0*)ms14_12700))==((void*)(_rfctbcn))){
  1271. }
  1272. else{
  1273. R=0;
  1274. }
  1275. /*FI]*/
  1276. }
  1277. else{
  1278. R=0;
  1279. }
  1280. /*FI]*/
  1281. }
  1282. /*FI]*/
  1283. }
  1284. /*FI]*/
  1285. }
  1286. /*FI]*/
  1287. return R;
  1288. }
  1289. /*No:CREATION_CALL_3.fz_03*/
  1290.  
  1291.  
  1292. void r256compile_to_jvm0(T0* a1){
  1293. T2 _dummy=0;
  1294. /*[IF*/
  1295. if(X52is_reference(a1)){
  1296. r23jvm_basic_new((T23*)(X52run_class(a1)));
  1297. }
  1298. else{
  1299. _dummy=X52jvm_push_default(a1);
  1300. }
  1301. /*FI]*/
  1302. }
  1303. /*No:CREATION_CALL_3.us_string*/
  1304. /*No:CREATION_CALL_3.run_feature*/
  1305. /*No:CREATION_CALL_3.us_array*/
  1306.  
  1307.  
  1308. void r256check_writable(T256* C,T0* a1){
  1309. T0* _w=NULL;
  1310. C->_current_type=a1;
  1311. _w=X109to_runnable((C)->_writable/*8*/,a1);
  1312. /*[IF*/
  1313. if((_w)==((void*)(NULL))){
  1314. r21add_position(X109start_position((C)->_writable/*8*/));
  1315. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms253_64251);
  1316. r21fatal_error((T21*)(oBC12eh),b1);
  1317. }/*]*/
  1318. }
  1319. else{
  1320. C->_writable=_w;
  1321. }
  1322. /*FI]*/
  1323. }
  1324.  
  1325.  
  1326. void r256check_creation_clause(T256* C,T0* a1){
  1327. T0* _args=NULL;
  1328. T0* _top=NULL;
  1329. T0* _bottom=NULL;
  1330. T0* _fn=NULL;
  1331. T0* _ct=NULL;
  1332. _fn=/*X165feature_name*/((T0*)((T168*)((C)->_call/*20*/))->_feature_name/*8*/);
  1333. _top=r59base_class((T59*)(X50start_position(_fn)));
  1334. _bottom=X52base_class(a1);
  1335. /*[IF*/
  1336. if(X52is_like_current(a1)){
  1337. _fn=r63new_name_of(((T63*)_bottom),_top,_fn);
  1338. /*[IF*/
  1339. if((_fn)==((void*)(NULL))){
  1340. _fn=/*X165feature_name*/((T0*)((T168*)((C)->_call/*20*/))->_feature_name/*8*/);
  1341. r21add_position(X50start_position(_fn));
  1342. /*[IRF3.6append*/{T0* b1=((T0*)ms13_7398);
  1343. r7append((T7*)(oBC21explanation),b1);
  1344. }/*]*/
  1345. /*[IRF3.6append*/{T0* b1=X50to_string(_fn);
  1346. r7append((T7*)(oBC21explanation),b1);
  1347. }/*]*/
  1348. /*[IRF3.6append*/{T0* b1=((T0*)ms257_25652);
  1349. r7append((T7*)(oBC21explanation),b1);
  1350. }/*]*/
  1351. /*[IRF3.6append*/{T0* b1=X52run_time_mark(a1);
  1352. r7append((T7*)(oBC21explanation),b1);
  1353. }/*]*/
  1354. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms13_166);
  1355. r21fatal_error((T21*)(oBC12eh),b1);
  1356. }/*]*/
  1357. }
  1358. /*FI]*/
  1359. }
  1360. /*FI]*/
  1361. C->_run_feature=r23get_feature((T23*)(X52run_class(a1)),_fn);
  1362. /*[IF*/
  1363. if(((C)->_run_feature/*16*/)==((void*)(NULL))){
  1364. r256cp_not_found(C,_fn);
  1365. }
  1366. /*FI]*/
  1367. /*[IF*/
  1368. if(((T22*)(oBC12small_eiffel))->_short_flag/*8*/){
  1369. }
  1370.  else if(!(X52has_creation(a1,_fn))){
  1371. r21add_position(X50start_position(/*X165feature_name*/((T0*)((T168*)((C)->_call/*20*/))->_feature_name/*8*/)));
  1372. r21add_position(X50start_position(_fn));
  1373. /*[IRF3.6append*/{T0* b1=X50to_string(_fn);
  1374. r7append((T7*)(oBC21explanation),b1);
  1375. }/*]*/
  1376. /*[IRF3.6append*/{T0* b1=((T0*)ms257_45856);
  1377. r7append((T7*)(oBC21explanation),b1);
  1378. }/*]*/
  1379. r21add_type(a1,((T0*)ms13_47));
  1380. r21print_as_fatal_error((T21*)(oBC12eh));
  1381. }
  1382. /*FI]*/
  1383. X27add_client((C)->_run_feature/*16*/,X52run_class((C)->_current_type/*12*/));
  1384. /*[IF*/
  1385. if((X27result_type((C)->_run_feature/*16*/))!=((void*)(NULL))){
  1386. r21add_position(X27start_position((C)->_run_feature/*16*/));
  1387. r21add_position(X50start_position(_fn));
  1388. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms257_67122);
  1389. r21fatal_error((T21*)(oBC12eh),b1);
  1390. }/*]*/
  1391. }
  1392. /*FI]*/
  1393. /*[IF*/
  1394. if(((r256arg_count(C))==(0))&&((X27arguments((C)->_run_feature/*16*/))!=((void*)(NULL)))){
  1395. r21add_position(X27start_position((C)->_run_feature/*16*/));
  1396. r21add_position((C)->_start_position/*4*/);
  1397. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms257_63744);
  1398. r21fatal_error((T21*)(oBC12eh),b1);
  1399. }/*]*/
  1400. }
  1401. /*FI]*/
  1402. /*[IF*/
  1403. if((r256arg_count(C))>(0)){
  1404. _ct=/*X27current_type*/((T0*)((T26*)(r22top_rf((T22*)(oBC12small_eiffel))))->_current_type/*4*/);
  1405. _args=r152to_runnable((T152*)(X165arguments((C)->_call/*20*/)),_ct);
  1406. /*[IF*/
  1407. if((_args)==((void*)(NULL))){
  1408. r256error(r152start_position((T152*)(X165arguments((C)->_call/*20*/))),((T0*)ms13_14714));
  1409. }
  1410. else{
  1411. r152match_with(((T152*)_args),(C)->_run_feature/*16*/,_ct);
  1412. }
  1413. /*FI]*/
  1414. }
  1415. /*FI]*/
  1416. C->_call=X165make_runnable((C)->_call/*20*/,(C)->_writable/*8*/,_args,(C)->_run_feature/*16*/);
  1417. }
  1418. /*No:CREATION_CALL_3.fz_bad_arguments*/
  1419. /*No:CREATION_CALL_3.fz_09*/
  1420.  
  1421.  
  1422. void r256compile_to_jvm(T256* C){
  1423. T0* _t=NULL;
  1424. T0* _w=NULL;
  1425. _w=(C)->_writable/*8*/;
  1426. _t=X52run_type(X109result_type(_w));
  1427. r256compile_to_jvm0(_t);
  1428. r24inside_new((T24*)(oBC12jvm),(C)->_run_feature/*16*/,(C)->_call/*20*/);
  1429. X52jvm_check_class_invariant(_t);
  1430. X109jvm_assign(_w);
  1431. }
  1432.  
  1433.  
  1434. T2 r256arg_count(T256* C){
  1435. T2 R=0;
  1436. /*[IF*/
  1437. if(((C)->_call/*20*/)!=((void*)(NULL))){
  1438. R=X165arg_count((C)->_call/*20*/);
  1439. }
  1440. /*FI]*/
  1441. return R;
  1442. }
  1443. /*No:CREATION_CALL_3.fatal_error*/
  1444. /*No:CREATION_CALL_3.us_with_capacity*/
  1445. /*No:CREATION_CALL_3.us_blank*/
  1446. /*No:CREATION_CALL_3.us_dictionary*/
  1447. /*No:CREATION_CALL_3.us_fixed_array*/
  1448.  
  1449.  
  1450. void r256check_created_type(T256* C,T0* a1){
  1451. T0* _rt=NULL;
  1452. _rt=X52run_type(a1);
  1453. /*[IF*/
  1454. if(((T22*)(oBC12small_eiffel))->_short_flag/*8*/){
  1455. }
  1456.  else if(((T63*)(X52base_class(_rt)))->_is_deferred/*16*/){
  1457. r21add_type(_rt,((T0*)ms253_11858));
  1458. r256warning((C)->_start_position/*4*/,((T0*)ms253_30996));
  1459. }
  1460. /*FI]*/
  1461. /*[IF*/
  1462. if(X52is_formal_generic(a1)){
  1463. r21add_position((C)->_start_position/*4*/);
  1464. /*[IRF3.6append*/{T0* b1=((T0*)ms253_77140);
  1465. r7append((T7*)(oBC21explanation),b1);
  1466. }/*]*/
  1467. r21add_type(a1,((T0*)ms253_180));
  1468. r21print_as_fatal_error((T21*)(oBC12eh));
  1469. }
  1470. /*FI]*/
  1471. r23set_at_run_time((T23*)(X52run_class(_rt)));
  1472. }
  1473.  
  1474.  
  1475. void r256warning(T0* a1,T0* a2){
  1476. r21add_position(a1);
  1477. r21warning((T21*)(oBC12eh),a2);
  1478. }
  1479. /*No:CREATION_CALL_3.current_type*/
  1480. /*No:CREATION_CALL_3.us_make*/
  1481. /*No:CREATION_CALL_3.us_std_file_write*/
  1482. /*No:CREATION_CALL_3.fz_dot*/
  1483. /*No:CREATION_CALL_3.call*/
  1484.  
  1485.  
  1486. void r256error(T0* a1,T0* a2){
  1487. r21add_position(a1);
  1488. r21error((T21*)(oBC12eh),a2);
  1489. }
  1490. /*No:CREATION_CALL_3.end_mark_comment*/
  1491.  
  1492.  
  1493. void r256make(T256* C,T0* a1,T0* a2,T0* a3){
  1494. C->_start_position=a1;
  1495. C->_writable=a2;
  1496. C->_call=a3;
  1497. }
  1498.  
  1499.  
  1500. void r256cp_not_found(T256* C,T0* a1){
  1501. r21add_position(X50start_position(/*X165feature_name*/((T0*)((T168*)((C)->_call/*20*/))->_feature_name/*8*/)));
  1502. r21add_position(X50start_position(a1));
  1503. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms257_53476);
  1504. r21fatal_error((T21*)(oBC12eh),b1);
  1505. }/*]*/
  1506. }
  1507.  
  1508.  
  1509. void r256afd_check(T256* C){
  1510. /*[IF*/
  1511. if((r256arg_count(C))>(0)){
  1512. r152afd_check((T152*)(r256run_args(C)));
  1513. }
  1514. /*FI]*/
  1515. }
  1516. T0*oBC335dictionary=NULL;
  1517.  
  1518.  
  1519. void r335update(T0* a1,T0* a2){
  1520. T0* _running=NULL;
  1521. T0* _current_type=NULL;
  1522. /*[IF*/
  1523. if(X109is_current(a1)){
  1524. }
  1525.  else if(X109is_manifest_string(a1)){
  1526. }
  1527. else{
  1528. _current_type=/*X27current_type*/((T0*)(((T26*)a2))->_current_type/*4*/);
  1529. /*[IF*/
  1530. if(X52is_reference(_current_type)){
  1531. _running=((T23*)(X52run_class(_current_type)))->_running/*12*/;
  1532. /*[IF*/
  1533. if(((_running)!=((void*)(NULL)))&&((r340count(((T340*)_running)))>(1))){
  1534. r335update_with(a2);
  1535. }
  1536. /*FI]*/
  1537. }
  1538. /*FI]*/
  1539. }
  1540. /*FI]*/
  1541. }
  1542. /*No:SWITCH_COLLECTION.jvm_define*/
  1543. /*No:SWITCH_COLLECTION.falling_down*/
  1544.  
  1545.  
  1546. void r335update_with(T0* a1){
  1547. T0* _running=NULL;
  1548. T0* _dictionary2=NULL;
  1549. T0* _key2=NULL;
  1550. T0* _key1=NULL;
  1551. T0* _current_type=NULL;
  1552. _current_type=/*X27current_type*/((T0*)(((T26*)a1))->_current_type/*4*/);
  1553. _running=((T23*)(X52run_class(_current_type)))->_running/*12*/;
  1554. /*[IF*/
  1555. if(((_running)!=((void*)(NULL)))&&((r340count(((T340*)_running)))>(1))){
  1556. _key1=X52run_time_mark(_current_type);
  1557. _key2=X50to_key(/*X27name*/((T0*)(((T26*)a1))->_name/*16*/));
  1558. /*[IF*/
  1559. if(r337has((T337*)(oBC335dictionary),_key1)){
  1560. _dictionary2=r337at((T337*)(oBC335dictionary),_key1);
  1561. /*[IF*/
  1562. if(!(r333has(((T333*)_dictionary2),_key2))){
  1563. r333put(((T333*)_dictionary2),a1,_key2);
  1564. }
  1565. /*FI]*/
  1566. }
  1567. else{
  1568. {T333*n=malloc(sizeof(*n));
  1569. *n=M333;
  1570. /*[IRF3.4make*/r333with_capacity(n,32);
  1571. /*]*/
  1572. _dictionary2=(T0*)n;
  1573. }
  1574. r333put(((T333*)_dictionary2),a1,_key2);
  1575. r337put((T337*)(oBC335dictionary),_dictionary2,_key1);
  1576. }
  1577. /*FI]*/
  1578. }
  1579. /*FI]*/
  1580. }
  1581. /*No:CALL_INFIX_AND_THEN.static_value*/
  1582. /*No:CALL_INFIX_AND_THEN.feature_name*/
  1583.  
  1584.  
  1585. T6 r126is_static(T126* C){
  1586. T6 R=0;
  1587. /*[IF*/
  1588. if(X52is_boolean(X109result_type((C)->_target/*4*/))){
  1589. /*[IF*/
  1590. if(X109is_static((C)->_target/*4*/)){
  1591. /*[IF*/
  1592. if((X109static_value((C)->_target/*4*/))==(0)){
  1593. R=1;
  1594. }
  1595. else{
  1596. R=X109is_static(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
  1597. C->_static_value_mem=X109static_value(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
  1598. }
  1599. /*FI]*/
  1600. }
  1601. /*FI]*/
  1602. }
  1603. /*FI]*/
  1604. return R;
  1605. }
  1606. /*No:CALL_INFIX_AND_THEN.is_manifest_string*/
  1607.  
  1608.  
  1609. T0* r126start_position(T126* C){
  1610. T0* R=NULL;
  1611. R=((T141*)((C)->_feature_name/*12*/))->_start_position/*8*/;
  1612. return R;
  1613. }
  1614.  
  1615.  
  1616. T0* r126add_comment(T126* C,T0* a1){
  1617. T0* R=NULL;
  1618. /*[IF*/
  1619. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r73count(((T73*)((((T85*)a1))->_list/*4*/)))/*)*/)==(0))){
  1620. R=(T0*)C;
  1621. }
  1622. else{
  1623. {T234*n=malloc(sizeof(*n));
  1624. *n=M234;
  1625. r234make(n,(T0*)C,a1);
  1626. R=(T0*)n;
  1627. }
  1628. }
  1629. /*FI]*/
  1630. return R;
  1631. }
  1632.  
  1633.  
  1634. T2 r126to_integer(T126* C){
  1635. T2 R=0;
  1636. r126error(r126start_position(C),((T0*)ms13_45846));
  1637. return R;
  1638. }
  1639.  
  1640.  
  1641. T6 r126use_current(T126* C){
  1642. T6 R=0;
  1643. /*[IF*/
  1644. {/*AT*/R=r152use_current((T152*)((C)->_arguments/*8*/));
  1645. }
  1646. /*FI]*/
  1647. /*[IF*/
  1648. if(R){
  1649. }
  1650.  else if(X109is_current((C)->_target/*4*/)){
  1651. R=X27use_current((C)->_run_feature/*16*/);
  1652. }
  1653. else{
  1654. R=X109use_current((C)->_target/*4*/);
  1655. }
  1656. /*FI]*/
  1657. return R;
  1658. }
  1659. /*No:CALL_INFIX_AND_THEN.jvm_branch_if_true*/
  1660.  
  1661.  
  1662. T0* r126to_runnable(T126* C,T0* a1){
  1663. T0* R=NULL;
  1664. T0* _rf=NULL;
  1665. T0* _tbee=NULL;
  1666. T0* _at=NULL;
  1667. T0* _tt=NULL;
  1668. T0* _a=NULL;
  1669. T0* _t=NULL;
  1670. _t=r126runnable_expression((C)->_target/*4*/,a1);
  1671. _a=r126runnable_args((C)->_arguments/*8*/,a1);
  1672. _tt=X109result_type(_t);
  1673. _at=X109result_type(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
  1674. /*[IF*/
  1675. /*AF*//*AE*/
  1676. /*FI]*/
  1677. _rf=r126run_feature_for(C,_t,a1);
  1678. /*[IF*/
  1679. if(((C)->_run_feature/*16*/)==((void*)(NULL))){
  1680. C->_target=_t;
  1681. C->_arguments=_a;
  1682. C->_run_feature=_rf;
  1683. r126run_feature_match(C,a1);
  1684. R=(T0*)C;
  1685. }
  1686.  else if(((_t)==((void*)((C)->_target/*4*/)))&&((_a)==((void*)((C)->_arguments/*8*/)))){
  1687. R=(T0*)C;
  1688. }
  1689. else{
  1690. {T126*n=malloc(sizeof(*n));
  1691. *n=M126;
  1692. r126with(n,_t,(C)->_feature_name/*12*/,_a,_rf,a1);
  1693. R=(T0*)n;
  1694. }
  1695. }
  1696. /*FI]*/
  1697. return R;
  1698. }
  1699.  
  1700.  
  1701. T2 r126compile_to_jvm_into(T126* C,T0* a1){
  1702. T2 R=0;
  1703. R=r126standard_compile_to_jvm_into(C,a1);
  1704. return R;
  1705. }
  1706. /*No:CALL_INFIX_AND_THEN.is_pre_computable*/
  1707. /*No:CALL_INFIX_AND_THEN.fz_bad_argument*/
  1708. /*No:CALL_INFIX_AND_THEN.fz_iinaiv*/
  1709.  
  1710.  
  1711. T0* r126result_type(T126* C){
  1712. T0* R=NULL;
  1713. T0* _tla=NULL;
  1714. R=X27result_type((C)->_run_feature/*16*/);
  1715. /*[IF*/
  1716. if(X52is_like_current(R)){
  1717. R=/*X27current_type*/((T0*)((T26*)((C)->_run_feature/*16*/))->_current_type/*4*/);
  1718. }
  1719. else{
  1720. _tla=R;
  1721. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  1722. case 262: 
  1723. break;
  1724. default:
  1725. _tla=NULL;
  1726. };/*[IF*/
  1727. if((_tla)!=((void*)(NULL))){
  1728. R=X52run_type(X109result_type(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/));
  1729. }
  1730. /*FI]*/
  1731. }
  1732. /*FI]*/
  1733. return R;
  1734. }
  1735. /*No:CALL_INFIX_AND_THEN.static_value_mem*/
  1736. /*No:CALL_INFIX_AND_THEN.run_feature*/
  1737.  
  1738.  
  1739. T0* r126runnable_args(T0* a1,T0* a2){
  1740. T0* R=NULL;
  1741. R=r152to_runnable(((T152*)a1),a2);
  1742. /*[IF*/
  1743. if((R)==((void*)(NULL))){
  1744. r21add_position(r152start_position(((T152*)a1)));
  1745. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms13_13065);
  1746. r21fatal_error((T21*)(oBC12eh),b1);
  1747. }/*]*/
  1748. }
  1749. /*FI]*/
  1750. return R;
  1751. }
  1752.  
  1753.  
  1754. void r126standard_compile_target_to_jvm(T126* C){
  1755. r126compile_to_jvm(C);
  1756. X52jvm_check_class_invariant(r126result_type(C));
  1757. }
  1758. /*No:CALL_INFIX_AND_THEN.compile_to_jvm_assignment*/
  1759. /*No:CALL_INFIX_AND_THEN.fz_07*/
  1760.  
  1761.  
  1762. void r126compile_to_jvm_old(T126* C){
  1763. X109compile_to_jvm_old((C)->_target/*4*/);
  1764. /*[IF*/
  1765. {/*AT*/r152compile_to_jvm_old((T152*)((C)->_arguments/*8*/));
  1766. }
  1767. /*FI]*/
  1768. }
  1769. /*No:CALL_INFIX_AND_THEN.jvm_assign*/
  1770. /*No:CALL_INFIX_AND_THEN.jvm_branch_if_false*/
  1771.  
  1772.  
  1773. void r126compile_to_jvm(T126* C){
  1774. T0* _ca=NULL;
  1775. T2 _point2=0;
  1776. T2 _failure=0;
  1777. _ca=oBC12code_attribute;
  1778. X109compile_to_jvm((C)->_target/*4*/);
  1779. _failure=r28opcode_ifeq(((T28*)_ca));
  1780. X109compile_to_jvm(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
  1781. _point2=r28opcode_goto(((T28*)_ca));
  1782. r28resolve_u2_branch(_failure);
  1783. /*[IRF3.4opcode_iconst_0*/r28opcode(((T28*)_ca),3,1);
  1784. /*]*/
  1785. r28resolve_u2_branch(_point2);
  1786. }
  1787. /*No:CALL_INFIX_AND_THEN.arg_count*/
  1788.  
  1789.  
  1790. void r126with(T126* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  1791. C->_target=a1;
  1792. C->_feature_name=a2;
  1793. C->_arguments=a3;
  1794. C->_run_feature=a4;
  1795. r126run_feature_match(C,a5);
  1796. }
  1797. /*No:CALL_INFIX_AND_THEN.is_result*/
  1798. /*No:CALL_INFIX_AND_THEN.fatal_error*/
  1799.  
  1800.  
  1801. void r126run_feature_match(T126* C,T0* a1){
  1802. r126run_feature_has_result(C);
  1803. r152match_with((T152*)((C)->_arguments/*8*/),(C)->_run_feature/*16*/,a1);
  1804. }
  1805. /*No:CALL_INFIX_AND_THEN.arguments*/
  1806.  
  1807.  
  1808. T0* r126runnable_expression(T0* a1,T0* a2){
  1809. T0* R=NULL;
  1810. R=X109to_runnable(a1,a2);
  1811. /*[IF*/
  1812. if((R)==((void*)(NULL))){
  1813. r21add_position(X109start_position(a1));
  1814. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms121_16515);
  1815. r21fatal_error((T21*)(oBC12eh),b1);
  1816. }/*]*/
  1817. }
  1818. /*FI]*/
  1819. return R;
  1820. }
  1821. /*No:CALL_INFIX_AND_THEN.can_be_dropped*/
  1822. /*No:CALL_INFIX_AND_THEN.implicit_cast*/
  1823. /*No:CALL_INFIX_AND_THEN.compile_target_to_jvm*/
  1824. /*No:CALL_INFIX_AND_THEN.isa_dca_inline_argument*/
  1825. /*No:CALL_INFIX_AND_THEN.arg1*/
  1826. /*No:CALL_INFIX_AND_THEN.us_and_then*/
  1827.  
  1828.  
  1829. void r126run_feature_has_result(T126* C){
  1830. /*[IF*/
  1831. if((X27result_type((C)->_run_feature/*16*/))==((void*)(NULL))){
  1832. r21add_position(X27start_position((C)->_run_feature/*16*/));
  1833. r21add_position(((T141*)((C)->_feature_name/*12*/))->_start_position/*8*/);
  1834. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms120_53650);
  1835. r21fatal_error((T21*)(oBC12eh),b1);
  1836. }/*]*/
  1837. }
  1838. /*FI]*/
  1839. }
  1840.  
  1841.  
  1842. T2 r126jvm_standard_branch_if_false(T126* C){
  1843. T2 R=0;
  1844. r126compile_to_jvm(C);
  1845. R=r28opcode_ifeq((T28*)(oBC12code_attribute));
  1846. return R;
  1847. }
  1848.  
  1849.  
  1850. T0* r126run_feature_for(T126* C,T0* a1,T0* a2){
  1851. T0* R=NULL;
  1852. T0* _rc=NULL;
  1853. _rc=X52run_class(X109result_type(a1));
  1854. R=r23get_rf(((T23*)_rc),a1,(C)->_feature_name/*12*/,a2);
  1855. return R;
  1856. }
  1857. /*No:CALL_INFIX_AND_THEN.target*/
  1858.  
  1859.  
  1860. void r126error(T0* a1,T0* a2){
  1861. r21add_position(a1);
  1862. r21error((T21*)(oBC12eh),a2);
  1863. }
  1864.  
  1865.  
  1866. void r126make(T126* C,T0* a1,T0* a2,T0* a3){
  1867. C->_target=a1;
  1868. {T141*n=malloc(sizeof(*n));
  1869. *n=M141;
  1870. r141make(n,r126operator(),a2);
  1871. C->_feature_name=(T0*)n;
  1872. }
  1873. {T152*n=malloc(sizeof(*n));
  1874. *n=M152;
  1875. /*[IRF3.3make_1*/((((T152*)(n)))->_first_one)=(a3);
  1876. /*]*/
  1877. C->_arguments=(T0*)n;
  1878. }
  1879. }
  1880. /*No:CALL_INFIX_AND_THEN.is_current*/
  1881.  
  1882.  
  1883. T2 r126standard_compile_to_jvm_into(T126* C,T0* a1){
  1884. T2 R=0;
  1885. r126compile_to_jvm(C);
  1886. R=X52jvm_convert_to(X52run_type(r126result_type(C)),a1);
  1887. return R;
  1888. }
  1889. /*No:CALL_INFIX_AND_THEN.is_void*/
  1890.  
  1891.  
  1892. T0* r126operator(void){
  1893. T0* R=NULL;
  1894. R=((T0*)ms14_10800);
  1895. return R;
  1896. }
  1897.  
  1898.  
  1899. T2 r126jvm_standard_branch_if_true(T126* C){
  1900. T2 R=0;
  1901. r126compile_to_jvm(C);
  1902. R=r28opcode_ifne((T28*)(oBC12code_attribute));
  1903. return R;
  1904. }
  1905.  
  1906.  
  1907. void r126afd_check(T126* C){
  1908. T0* _running=NULL;
  1909. T0* _rc=NULL;
  1910. _rc=X52run_class(X109result_type((C)->_target/*4*/));
  1911. _running=(((T23*)_rc))->_running/*12*/;
  1912. /*[IF*/
  1913. if((_running)==((void*)(NULL))){
  1914. r21add_position(X109start_position((C)->_target/*4*/));
  1915. /*[IRF3.6append*/{T0* b1=((T0*)ms121_181815);
  1916. r7append((T7*)(oBC21explanation),b1);
  1917. }/*]*/
  1918. /*[IRF3.6append*/{T0* b1=X52run_time_mark((((T23*)_rc))->_current_type/*0*/);
  1919. r7append((T7*)(oBC21explanation),b1);
  1920. }/*]*/
  1921. /*[IRF3.6append*/{T0* b1=((T0*)ms13_20094);
  1922. r7append((T7*)(oBC21explanation),b1);
  1923. }/*]*/
  1924. r21print_as_warning((T21*)(oBC12eh));
  1925. r23set_at_run_time(((T23*)_rc));
  1926. }
  1927.  else if((r340count(((T340*)_running)))>(1)){
  1928. r335update((C)->_target/*4*/,(C)->_run_feature/*16*/);
  1929. }
  1930. /*FI]*/
  1931. X109afd_check((C)->_target/*4*/);
  1932. /*[IF*/
  1933. {/*AT*/r152afd_check((T152*)((C)->_arguments/*8*/));
  1934. }
  1935. /*FI]*/
  1936. }
  1937.  
  1938.  
  1939. void r26fall_down(T26* C){
  1940. T0* _rf=NULL;
  1941. T0* _sub_name=NULL;
  1942. T0* _sub_bc=NULL;
  1943. T0* _current_bc=NULL;
  1944. T0* _sub_rc=NULL;
  1945. T0* _current_rc=NULL;
  1946. T2 _i=0;
  1947. T0* _running=NULL;
  1948. _current_rc=X52run_class((C)->_current_type/*4*/);
  1949. _running=(((T23*)_current_rc))->_running/*12*/;
  1950. /*[IF*/
  1951. if((_running)!=((void*)(NULL))){
  1952. _current_bc=X52base_class((C)->_current_type/*4*/);
  1953. _i=(((T340*)_running))->_lower/*12*/;
  1954. while (!((_i)>((((T340*)_running))->_upper/*8*/))) {
  1955. _sub_rc=r340item(((T340*)_running),_i);
  1956. /*[IF*/
  1957. if((_sub_rc)!=((void*)(_current_rc))){
  1958. _sub_bc=X52base_class((((T23*)_sub_rc))->_current_type/*0*/);
  1959. _sub_name=r63new_name_of(((T63*)_sub_bc),_current_bc,(C)->_name/*16*/);
  1960. _rf=r23get_feature(((T23*)_sub_rc),_sub_name);
  1961. }
  1962. /*FI]*/
  1963. _i=(_i)+(1);
  1964. }
  1965. }
  1966. /*FI]*/
  1967. }
  1968. /*No:RUN_FEATURE_3.use_current_state*/
  1969. /*No:RUN_FEATURE_3.rescue_compound*/
  1970. /*No:RUN_FEATURE_3.actuals_clients*/
  1971. /*No:RUN_FEATURE_3.ucs_false*/
  1972. /*No:RUN_FEATURE_3.is_static*/
  1973.  
  1974.  
  1975. T0* r26start_position(T26* C){
  1976. T0* R=NULL;
  1977. R=r307start_position((T307*)((C)->_base_feature/*32*/));
  1978. return R;
  1979. }
  1980.  
  1981.  
  1982. void r26routine_mapping_jvm(T26* C){
  1983. T2 _stack_level=0;
  1984. T2 _idx=0;
  1985. T0* _ct=NULL;
  1986. T0* _rt=NULL;
  1987. _ct=(C)->_current_type/*4*/;
  1988. r24push_target_as_target((T24*)(oBC12jvm));
  1989. _stack_level=-((1)+(r24push_arguments((T24*)(oBC12jvm))));
  1990. _rt=/*(IRF4.1result_type*/NULL/*)*/;
  1991. /*[IF*/
  1992. if((_rt)!=((void*)(NULL))){
  1993. _stack_level=(_stack_level)+(X52jvm_stack_space(_rt));
  1994. }
  1995. /*FI]*/
  1996. _idx=r29idx_methodref((T29*)(oBC12constant_pool),(T0*)C);
  1997. r23jvm_invoke((T23*)(X52run_class(_ct)),_idx,_stack_level);
  1998. }
  1999.  
  2000.  
  2001. T6 r26use_current(T26* C){
  2002. T6 R=0;
  2003. {int z1=(C)->_use_current_state/*28*/;
  2004.  
  2005. if((14==z1)){
  2006. R=1;
  2007. }
  2008.  else 
  2009. if((13==z1)){
  2010. }
  2011.  else 
  2012. if((15==z1)){
  2013. C->_use_current_state=16;
  2014. r26compute_use_current(C);
  2015. R=r26use_current(C);
  2016. }
  2017.  else {R=1;
  2018. }}
  2019. return R;
  2020. }
  2021. /*No:RUN_FEATURE_3.mapping_jvm*/
  2022.  
  2023.  
  2024. void r26routine_afd_check(T26* C){
  2025. /*[IF*/
  2026. if(((C)->_require_assertion/*20*/)!=((void*)(NULL))){
  2027. r367afd_check((T367*)((C)->_require_assertion/*20*/));
  2028. }
  2029. /*FI]*/
  2030. /*[IF*/
  2031. if(((C)->_routine_body/*44*/)!=((void*)(NULL))){
  2032. r220afd_check((T220*)((C)->_routine_body/*44*/));
  2033. }
  2034. /*FI]*/
  2035. /*[IF*/
  2036. if(((C)->_rescue_compound/*48*/)!=((void*)(NULL))){
  2037. r220afd_check((T220*)((C)->_rescue_compound/*48*/));
  2038. }
  2039. /*FI]*/
  2040. /*[IF*/
  2041. if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
  2042. r219afd_check((T219*)((C)->_ensure_assertion/*24*/));
  2043. }
  2044. /*FI]*/
  2045. }
  2046. /*No:RUN_FEATURE_3.ucs_not_computed*/
  2047.  
  2048.  
  2049. T6 r26is_pre_computable(T26* C){
  2050. T6 R=0;
  2051. /*[IF*/
  2052. if(((C)->_arguments/*36*/)==((void*)(NULL))){
  2053. /*[IF*/
  2054. if(((C)->_routine_body/*44*/)==((void*)(NULL))){
  2055. R=1;
  2056. }
  2057. else{
  2058. /*[IF*/
  2059. if(((C)->_local_vars/*40*/)==((void*)(NULL))){
  2060. R=r220is_pre_computable((T220*)((C)->_routine_body/*44*/));
  2061. }
  2062. /*FI]*/
  2063. }
  2064. /*FI]*/
  2065. }
  2066. /*FI]*/
  2067. return R;
  2068. }
  2069.  
  2070.  
  2071. void r26std_compute_use_current(T26* C){
  2072. /*[IF*/
  2073. if(((C)->_use_current_state/*28*/)==(16)){
  2074. /*[IF*/
  2075. if(((C)->_require_assertion/*20*/)!=((void*)(NULL))){
  2076. /*[IF*/
  2077. if(r367use_current((T367*)((C)->_require_assertion/*20*/))){
  2078. C->_use_current_state=14;
  2079. }
  2080. /*FI]*/
  2081. }
  2082. /*FI]*/
  2083. }
  2084. /*FI]*/
  2085. /*[IF*/
  2086. if(((C)->_use_current_state/*28*/)==(16)){
  2087. /*[IF*/
  2088. if(((C)->_routine_body/*44*/)!=((void*)(NULL))){
  2089. /*[IF*/
  2090. if(r220use_current((T220*)((C)->_routine_body/*44*/))){
  2091. C->_use_current_state=14;
  2092. }
  2093. /*FI]*/
  2094. }
  2095. /*FI]*/
  2096. }
  2097. /*FI]*/
  2098. /*[IF*/
  2099. if(((C)->_use_current_state/*28*/)==(16)){
  2100. /*[IF*/
  2101. if(((C)->_rescue_compound/*48*/)!=((void*)(NULL))){
  2102. /*[IF*/
  2103. if(r220use_current((T220*)((C)->_rescue_compound/*48*/))){
  2104. C->_use_current_state=14;
  2105. }
  2106. /*FI]*/
  2107. }
  2108. /*FI]*/
  2109. }
  2110. /*FI]*/
  2111. /*[IF*/
  2112. if(((C)->_use_current_state/*28*/)==(16)){
  2113. /*[IF*/
  2114. if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
  2115. /*[IF*/
  2116. if(r219use_current((T219*)((C)->_ensure_assertion/*24*/))){
  2117. C->_use_current_state=14;
  2118. }
  2119. /*FI]*/
  2120. }
  2121. /*FI]*/
  2122. }
  2123. /*FI]*/
  2124. /*[IF*/
  2125. if(((C)->_use_current_state/*28*/)==(16)){
  2126. C->_use_current_state=13;
  2127. }
  2128. /*FI]*/
  2129. }
  2130.  
  2131.  
  2132. T0* r26run_class(T26* C){
  2133. T0* R=NULL;
  2134. R=X52run_class((C)->_current_type/*4*/);
  2135. return R;
  2136. }
  2137. /*No:RUN_FEATURE_3.result_type*/
  2138. /*No:RUN_FEATURE_3.base_feature*/
  2139. /*No:RUN_FEATURE_3.static_value_mem*/
  2140. /*No:RUN_FEATURE_3.ensure_assertion*/
  2141.  
  2142.  
  2143. T2 r26jvm_local_variable_offset(T26* C,T0* a1){
  2144. T2 R=0;
  2145. R=X52jvm_stack_space((C)->_current_type/*4*/);
  2146. /*[IF*/
  2147. if(((C)->_arguments/*36*/)!=((void*)(NULL))){
  2148. R=(R)+(r191jvm_stack_space((T191*)((C)->_arguments/*36*/)));
  2149. }
  2150. /*FI]*/
  2151. R=(R)+(r182jvm_offset_of((T182*)((C)->_local_vars/*40*/),a1));
  2152. return R;
  2153. }
  2154.  
  2155.  
  2156. T2 r26arg_count(T26* C){
  2157. T2 R=0;
  2158. /*[IF*/
  2159. if(((C)->_arguments/*36*/)!=((void*)(NULL))){
  2160. R=/*(IRF4.6count*/(((T195*)(((T191*)((C)->_arguments/*36*/))->_flat_list/*8*/)))->_upper/*12*//*)*/;
  2161. }
  2162. /*FI]*/
  2163. return R;
  2164. }
  2165. /*No:RUN_FEATURE_3.fz_19*/
  2166.  
  2167.  
  2168. T6 r26is_exported_in(T26* C,T0* a1){
  2169. T6 R=0;
  2170. R=r103gives_permission_to((T103*)(r26clients(C)),a1);
  2171. return R;
  2172. }
  2173. /*No:RUN_FEATURE_3.arguments*/
  2174.  
  2175.  
  2176. T2 r26jvm_argument_offset(T26* C,T0* a1){
  2177. T2 R=0;
  2178. R=X52jvm_stack_space((C)->_current_type/*4*/);
  2179. R=(R)+(r191jvm_offset_of((T191*)((C)->_arguments/*36*/),a1));
  2180. return R;
  2181. }
  2182. /*No:RUN_FEATURE_3.can_be_dropped*/
  2183.  
  2184.  
  2185. void r26initialize(T26* C){
  2186. C->_arguments=((T307*)((C)->_base_feature/*32*/))->_arguments/*24*/;
  2187. /*[IF*/
  2188. if(((C)->_arguments/*36*/)!=((void*)(NULL))){
  2189. /*[IF*/
  2190. if(!(r191is_runnable((T191*)((C)->_arguments/*36*/),(C)->_current_type/*4*/))){
  2191. {T191*n=malloc(sizeof(*n));
  2192. *n=M191;
  2193. r191with(n,(C)->_arguments/*36*/,(C)->_current_type/*4*/);
  2194. C->_arguments=(T0*)n;
  2195. }
  2196. }
  2197. /*FI]*/
  2198. }
  2199. /*FI]*/
  2200. C->_local_vars=((T307*)((C)->_base_feature/*32*/))->_local_vars/*16*/;
  2201. /*[IF*/
  2202. if(((C)->_local_vars/*40*/)!=((void*)(NULL))){
  2203. C->_local_vars=r182to_runnable((T182*)((C)->_local_vars/*40*/),(C)->_current_type/*4*/);
  2204. }
  2205. /*FI]*/
  2206. C->_routine_body=((T307*)((C)->_base_feature/*32*/))->_routine_body/*44*/;
  2207. /*[IF*/
  2208. if(((C)->_routine_body/*44*/)!=((void*)(NULL))){
  2209. C->_routine_body=r220to_runnable((T220*)((C)->_routine_body/*44*/),(C)->_current_type/*4*/);
  2210. }
  2211. /*FI]*/
  2212. /*[IF*/
  2213. if(r76require_check((T76*)(oBC12run_control))){
  2214. C->_require_assertion=r307run_require((T0*)C);
  2215. }
  2216. /*FI]*/
  2217. /*[IF*/
  2218. if(r76ensure_check((T76*)(oBC12run_control))){
  2219. C->_ensure_assertion=r307run_ensure((T0*)C);
  2220. }
  2221. /*FI]*/
  2222. C->_rescue_compound=((T307*)((C)->_base_feature/*32*/))->_rescue_compound/*48*/;
  2223. /*[IF*/
  2224. if(((C)->_rescue_compound/*48*/)!=((void*)(NULL))){
  2225. /*[IRF3.3set_used*/((((T362*)((T362*)(oBC12exceptions_handler))))->_used)=(1);
  2226. /*]*/
  2227. C->_rescue_compound=r220to_runnable((T220*)((C)->_rescue_compound/*48*/),(C)->_current_type/*4*/);
  2228. }
  2229. /*FI]*/
  2230. }
  2231. /*No:RUN_FEATURE_3.require_assertion*/
  2232. /*No:RUN_FEATURE_3.update_tmp_jvm_descriptor*/
  2233.  
  2234.  
  2235. T2 r26jvm_max_locals(T26* C){
  2236. T2 R=0;
  2237. R=X52jvm_stack_space((C)->_current_type/*4*/);
  2238. /*[IF*/
  2239. if(((C)->_arguments/*36*/)!=((void*)(NULL))){
  2240. R=(R)+(r191jvm_stack_space((T191*)((C)->_arguments/*36*/)));
  2241. }
  2242. /*FI]*/
  2243. /*[IF*/
  2244. if(((C)->_local_vars/*40*/)!=((void*)(NULL))){
  2245. R=(R)+(r182jvm_stack_space((T182*)((C)->_local_vars/*40*/)));
  2246. }
  2247. /*FI]*/
  2248. /*[IF*/
  2249. /*AF*//*AE*/
  2250. /*FI]*/
  2251. return R;
  2252. }
  2253.  
  2254.  
  2255. void r26jvm_define_opening(T26* C){
  2256. T0* _t=NULL;
  2257. /*[IF*/
  2258. /*AF*//*AE*/
  2259. /*FI]*/
  2260. /*[IF*/
  2261. if(((C)->_local_vars/*40*/)!=((void*)(NULL))){
  2262. r182jvm_initialize((T182*)((C)->_local_vars/*40*/));
  2263. }
  2264. /*FI]*/
  2265. /*[IF*/
  2266. if(r76ensure_check((T76*)(oBC12run_control))){
  2267. /*[IF*/
  2268. if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
  2269. r219compile_to_jvm_old((T219*)((C)->_ensure_assertion/*24*/));
  2270. }
  2271. /*FI]*/
  2272. }
  2273. /*FI]*/
  2274. /*[IF*/
  2275. if(((C)->_require_assertion/*20*/)!=((void*)(NULL))){
  2276. r367compile_to_jvm((T367*)((C)->_require_assertion/*20*/));
  2277. }
  2278. /*FI]*/
  2279. }
  2280.  
  2281.  
  2282. void r26jvm_define_closing(T26* C){
  2283. /*[IF*/
  2284. if(r76ensure_check((T76*)(oBC12run_control))){
  2285. /*[IF*/
  2286. if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
  2287. r219compile_to_jvm((T219*)((C)->_ensure_assertion/*24*/),1);
  2288. /*[IRF3.4opcode_pop*/r28opcode((T28*)(oBC12code_attribute),87,-(1));
  2289. /*]*/
  2290. }
  2291. /*FI]*/
  2292. }
  2293. /*FI]*/
  2294. /*[IF*/
  2295. /*AF*//*AE*/
  2296. /*FI]*/
  2297. }
  2298. /*No:RUN_FEATURE_3.clients_memory*/
  2299. /*No:RUN_FEATURE_3.current_type*/
  2300.  
  2301.  
  2302. void r26add_client(T26* C,T0* a1){
  2303. T2 _i=0;
  2304. /*[IF*/
  2305. if(((C)->_actuals_clients/*12*/)==((void*)(NULL))){
  2306. {T343*n=malloc(sizeof(*n));
  2307. *n=M343;
  2308. r343with_capacity(n,4);
  2309. C->_actuals_clients=(T0*)n;
  2310. }
  2311. r343add_last((T343*)((C)->_actuals_clients/*12*/),a1);
  2312. }
  2313. else{
  2314. _i=r343fast_index_of((T343*)((C)->_actuals_clients/*12*/),a1);
  2315. /*[IF*/
  2316. if((_i)>(((T343*)((C)->_actuals_clients/*12*/))->_upper/*8*/)){
  2317. r343add_last((T343*)((C)->_actuals_clients/*12*/),a1);
  2318. }
  2319. /*FI]*/
  2320. }
  2321. /*FI]*/
  2322. r23add_client((T23*)(r26run_class(C)),a1);
  2323. }
  2324. /*No:RUN_FEATURE_3.ucs_in_computation*/
  2325.  
  2326.  
  2327. void r26compute_use_current(T26* C){
  2328. T0* _ct=NULL;
  2329. _ct=(C)->_current_type/*4*/;
  2330. /*[IF*/
  2331. if(X52is_reference(_ct)){
  2332. /*[IF*/
  2333. if(r76no_check((T76*)(oBC12run_control))){
  2334. C->_use_current_state=14;
  2335. }
  2336. else{
  2337. r26std_compute_use_current(C);
  2338. }
  2339. /*FI]*/
  2340. }
  2341. else{
  2342. r26std_compute_use_current(C);
  2343. }
  2344. /*FI]*/
  2345. }
  2346.  
  2347.  
  2348. void r26method_info_start(T26* C){
  2349. T2 _flags=0;
  2350. _flags=X52jvm_method_flags((C)->_current_type/*4*/);
  2351. r39start((T39*)(oBC12method_info),_flags,X50to_key((C)->_name/*16*/),r26jvm_descriptor(C));
  2352. }
  2353.  
  2354.  
  2355. void r26make(T26* C,T0* a1,T0* a2,T0* a3){
  2356. C->_current_type=a1;
  2357. C->_name=a2;
  2358. C->_base_feature=a3;
  2359. /*[IRF3.5add_rf*/r333put(((T333*)(((T23*)(r26run_class(C)))->_feature_dictionary/*24*/)),(T0*)C,X50to_key(a2));
  2360. /*]*/
  2361. r22incr_magic_count((T22*)(oBC12small_eiffel));
  2362. C->_use_current_state=15;
  2363. r22push((T22*)(oBC12small_eiffel),(T0*)C);
  2364. r26initialize(C);
  2365. r22pop((T22*)(oBC12small_eiffel));
  2366. }
  2367. /*No:RUN_FEATURE_3.ucs_true*/
  2368. /*No:RUN_FEATURE_3.routine_body*/
  2369.  
  2370.  
  2371. void r26jvm_define(T26* C){
  2372. r26method_info_start(C);
  2373. r26jvm_define_opening(C);
  2374. /*[IF*/
  2375. if(((C)->_routine_body/*44*/)!=((void*)(NULL))){
  2376. r220compile_to_jvm((T220*)((C)->_routine_body/*44*/));
  2377. }
  2378. /*FI]*/
  2379. r26jvm_define_closing(C);
  2380. /*[IRF3.2opcode_return*//*[IRF3.6add_u1*/{T2 b1=177;
  2381. r48add_last((T48*)(oBC28code),b1);
  2382. }/*]*/
  2383. /*]*/
  2384. r39finish((T39*)(oBC12method_info));
  2385. }
  2386. /*No:RUN_FEATURE_3.name*/
  2387. /*No:RUN_FEATURE_3.local_vars*/
  2388.  
  2389.